package com.xqboss.apps.domain.nft;

import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.xqboss.apps.enums.nft.NftTypeEnum;
import com.xqboss.apps.enums.nft.ResellEnum;
import lombok.Data;

import javax.persistence.Id;
import java.io.Serializable;

/**
 * 藏品、装备表
 *
 * @author wangcong
 * @date 2023-08-22
 */
@Data
public class Nft implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 主键
     */
    @Id
    @TableId
    private Long id;

    /**
     * 藏品名称
     */
    private String title;

    /**
     * 标签id {@link CategoryTypeEnum}
     */
    private Long categoryId;

    /**
     * 分类id{@link CategoryNftTypeEnum}
     */
    private Long categoryNftId;

    /**
     * 公告id
     */
    private Long announcementId;

    /**
     * 主图
     */
    private String mainImg;

    /**
     * 背景图
     */
    private String bgimg;

    /**
     * 作者id
     */
    private Long authorId;

    /**
     * 作者名称
     */
    private String authorName;

    /**
     * 作者头像
     */
    private String authorHeadimg;

    /**
     * 发行方id
     */
    private Long publishId;

    /**
     * 发行方名称
     */
    private String publishName;

    /**
     * 发行方头像
     */
    private String publishHeadimg;

    /**
     * 藏品介绍
     */
    private String description;

    /**
     * 状态(1已绑，2未绑定 暂时没用字段)
     */
    private Integer status;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 最低价
     */
    private BigDecimal lowestPrice;

    /**
     * 最高价
     */
    private BigDecimal maxPrice;

    /**
     * 转卖开关（0关闭，1开启）
     */
    private ResellEnum isResell;

    /**
     * 库存
     */
    private Integer stock;

    /**
     * 锁定库存
     */
    private Integer lockStock;

    /**
     * 库存总数
     */
    private Integer totalStock;

    /**
     * 外显库存（发售量）
     */
    private Integer displayStock;
    /**
     * 流通量
     */
    private Integer circulatingSupply;

    /**
     * 标签
     */
    private String tags;

    /**
     * 发售时间
     */
    private LocalDateTime publishTime;

    /**
     * 1藏品,2装备
     */
    private NftTypeEnum nftType;

    /**
     * 扩展字段
     */
    private String nftExtra;

    /**
     * 稀有度 1普通,2史诗,3传奇
     */
    private Integer rarity;

    /**
     * 初始属性模版id
     */
    private Long attrTemplateId;

    /**
     * 升级点数id
     */
    private Long upgradeId;

    /**
     * 收益折算系数
     */
    private BigDecimal coefficient;

    /**
     * 耐久维修系数(热豆)
     */
    private BigDecimal maintainRatio;

    /**
     * 耐久维修系数(扳手)
     */
    private BigDecimal maintainRatioWrench;

    /**
     * 维修消耗等级(扳手)
     */
    private Integer repairsLevelWrench;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 冷却时间
     */
    private Integer coolingTime;


    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 合约地址
     */
    private String contract;

    /**
     * 是否按新装备计算耐久修复
     */
    private Integer isNewRepair;

    /**
     * 删除标记
     */
    @TableLogic
    @JsonIgnore
    private Integer delFlag;


}